package cn.infinite.security.configuration;

import cn.infinite.security.core.SecretKeyManager;
import cn.infinite.security.core.impl.SecretKey;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;

import java.util.Map;

/**
 * 在某些场景下当开发者不想实现 SecretKeyManager 或者 不想储存密钥到数据库中时
 * 想通过简单的方式，将密钥配置在 配置文件中
 * <p>
 * 默认密钥管理器 {@link cn.infinite.security.core.impl.DefaultSecretKeyManager} 依赖此类实例
 * 同时满足以下两个条件，此类会自动生效
 * 1.应用开启自动验签 {@link cn.infinite.security.annotation.EnableAutoCheckSign}
 * 2.当开发者没有自定义密钥管理器 {@link SecretKeyManager} 时
 */
@Data
@ConfigurationProperties(prefix = "spring.security.security-basic.sign-validate.key-store")
public class SimpleSignValidateKeyStore {

    /**
     * 配置的密钥
     */
    private Map<String, SecretKey> keyMap;
}
